package br.com.sisgerenciamento.dto.endereco;

import java.io.Serializable;

import br.com.sisgerenciamento.exceptions.ApplicationException;
import br.com.sisgerenciamento.model.endereco.EnderecoVO;
import br.com.sisgerenciamento.model.endereco.TipoEnderecoEnum;
import br.com.sisgerenciamento.utilidades.EstadosBrasilEnum;
import br.com.sisgerenciamento.utilidades.Validator;

public class EnderecoDTO implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private String codigo;
	private String logradouro;
	private String numero;
	private String bairro;
	private String cidade;
	private Integer uf;
	private String cep;
	private Integer tipo;
	
	private String descricaoEstado;
	private String descricaoTipo;
	
	private String telefone;
	private String celular;
	private String telefone2;
	private String celular2;
	private String tipoCliente;
	
	public EnderecoVO getVO(){
		
		EnderecoVO vo = new EnderecoVO();
		Validator validator = Validator.novo();
		vo.setCodigo(!validator.isNullOrZero(getCodigo()) ? new Long(getCodigo()) : null );
		vo.setLogradouro(getLogradouro());
		vo.setNumero(getNumero());
		vo.setCidade(getCidade());
		vo.setUf(EstadosBrasilEnum.getByValor(getUf()));
		vo.setCep(getCep());
		vo.setTipo(TipoEnderecoEnum.getByValor(getTipo()));
		vo.setBairro(getBairro());
		return vo;
	}
	
	public void validar() throws ApplicationException{
		Validator validator = Validator.novo();
		validator.obrigatorio(getTipo(), getLogradouro(), getNumero(), getBairro(), getBairro(), getCidade(), getUf());
	}
	
	
	
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public String getLogradouro() {
		return logradouro;
	}
	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}
	public String getNumero() {
		return numero;
	}
	public void setNumero(String numero) {
		this.numero = numero;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public Integer getUf() {
		return uf;
	}
	public void setUf(Integer uf) {
		this.uf = uf;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public Integer getTipo() {
		return tipo;
	}
	public void setTipo(Integer tipo) {
		this.tipo = tipo;
	}
	public String getDescricaoEstado() {
		return descricaoEstado;
	}
	public String getDescricaoTipo() {
		return descricaoTipo;
	}
	public void setDescricaoEstado(String descricaoEstado) {
		this.descricaoEstado = descricaoEstado;
	}
	public void setDescricaoTipo(String descricaoTipo) {
		this.descricaoTipo = descricaoTipo;
	}
	
	public void setEnums(){
		descricaoEstado = EstadosBrasilEnum.getByValor(getUf()).getDescricao();
		descricaoTipo = TipoEnderecoEnum.getByValor(getTipo()).getDescricao();
	}

	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
	public String getCelular() {
		return celular;
	}
	public void setCelular(String celular) {
		this.celular = celular;
	}
	public String getTipoCliente() {
		return tipoCliente;
	}
	public void setTipoCliente(String tipoCliente) {
		this.tipoCliente = tipoCliente;
	}

	public String getTelefone2() {
		return telefone2;
	}

	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}

	public String getCelular2() {
		return celular2;
	}

	public void setCelular2(String celular2) {
		this.celular2 = celular2;
	}
	
	
	

}
